Virtualized computing environments are frequently supported by storage. Such storage is increasingly provided by solid state drives (SSDs). SSD manufacturers incorporate a controller that provides a block-style interface and that manages data storage and mapping. For example, read or write requests can include a logical block address associated with the request. The controller can determine a physical location on the SSD from where the data should be read or written. The controller can also manage data storage on the SSD to improve longevity and manage other functions.
Some SSDs, such as with Flash memory, can have limitations on reading memory cells. For example, a read of a memory cell can cause nearby cells to change over time (the phenomenon known as “read disturb”). Flash manufacturers provide a threshold number of reads (a Read Disturb Limit (RDL)) after which such changes might become uncorrectable. Before RDL is reached, an SSD controller has to ensure that there is no valid data in the impacted block—e.g., that it was either overwritten by the Host or copied by SSD controller itself over to a new block. Otherwise, data loss can occur. Many blocks can hit the RDL threshold number of reads at about the same time, which causes an “avalanche” of copies of blocks to new blocks. Such an effect can significantly impact the performance of the SSD.